//
//  JFDynamicViewController.m
//  JobFree2.0
//
//  Created by xxcao on 2017/5/27.
//  Copyright © 2017年 Dale. All rights reserved.
//

#import "JFDynamicViewController.h"
#import "JFDynamicCell.h"
#import "MJRefresh.h"

@interface JFDynamicViewController ()<UITableViewDataSource,UITableViewDelegate>

@end

@implementation JFDynamicViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor greenColor];
    self.title = @"动态";
    [self configureLeftNavigationBarItemWithImage:@"backToTeamIcon"];
    self.table.rowHeight = UITableViewAutomaticDimension;
    self.table.estimatedRowHeight = 100;
    [self addPullDownloadRequest];
    [self addPullUpRequest];
}

- (void)handleLeftBtnAction {
    [self.tabBarController.navigationController popViewControllerAnimated:YES];
}

//MARK: Custom Methods
- (void)addPullUpRequest {
    //上拉加载更多
    WeakSelf;
    self.table.mj_footer = [MJRefreshAutoNormalFooter footerWithRefreshingBlock:^{
        //refresh code
        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
            [wself.table.mj_footer endRefreshing];
        });
    }];
}

- (void)addPullDownloadRequest {
    //下拉刷新
    WeakSelf;
    self.table.mj_header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{
        //refresh code
        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
            [wself.table.mj_header endRefreshing];
        });
    }];
}

- (NSMutableArray *)dataSource {
    if(!_dataSource) {
        _dataSource = [NSMutableArray array];
        [_dataSource addObject:@"假设你有个煞笔客户，要让你做一个艺术家作品展示的应用，那么进入应用的第一个主页面肯定是个艺术家信息列表，而且是动态列表。但是客户需要的是快速实现，他不想听你逼逼动态列表好不好做，也不想看你在那里煞笔的炫耀技术，你特么乖乖实现就行了。"];
        [_dataSource addObject:@"你可以自己从头搭建工程，当然考虑到看教程的大部分都是懒逼，这里给你们准备了一份初始工程，如果你不想搞事，劝你还是老实点用我这份比较好，Understand。。。"];
        [_dataSource addObject:@"让我们跑一盘，可以看到ArtistListViewController显示了一个艺术家的列表，我们选择第一个艺术家（Pablo Picasso），页面跳转到ArtistDetailViewController显示艺术家作品介绍："];
        [_dataSource addObject:@"作为一个艺术家，不应该单单只有文字的介绍，还需要图片，但是在这里我们并没看到图片信息，所以我们需要添加图片显示，那么由于图片的宽高大小并不统一，因此你不可能只用一个固定高度就能解决，而是需要基于Cell内包含内容才决定的动态高度。"];
        [_dataSource addObject:@"这里我们可以使用Command + N快捷键来创建文件，Cell是属于视图结构，因此最好是放到Views分组下，你要不喜欢可以随便放，做项目要保持烂习惯也是你自己遭殃。OK，这里我们选择Cocoa Touch Class创建一个名为ArtistTableViewCell并且继承自UITableViewCell的源文件。语言项肯定是整Swift，也不需要创建Xib可是文件哈，你踏马要煞笔到怼Objc我也无话可说，那到这里我劝你赶紧Q掉。打开我们刚才创建的ArtistTableViewCell.swift并删掉系统自动生成的方法，接着我们添加如下属性："];
        [_dataSource addObject:@"拖一个UILabel到刚才的Cell里，并把内容改为Bio，然后在Attributes Inspector属性检查器里把Lines设置为0，Label要是现实多行文字这个是必须的前提，OK，搞定之后看起就想这样："];
        [_dataSource addObject:@"刚才我们设置的那个Lines也就是Label对应的断行属性numberOfLines，这个我就奶妈当到底吧，这个属性是Int类型，设置几就是只显示几行，设置0就是完整显示，千万别忘了设置，不然你就是当不插电开机的煞笔好了。"];
        [_dataSource addObject:@"接下来在Document Outline找到刚才绑定的Cell上右键，在弹出的outlet弹出列表上把ArtistTableViewCell的属性bioLabel拖到刚才弄的内容为Bio的Label上连接起来，演示如下："];
        [_dataSource addObject:@"一开始到现在咋都不说这么做是为啥，现在就告诉你为什么，让UITableViewCell动态高度的秘诀是利用AutoLayout里有内建高度的控件比如UILabel这种来把Cell撑开，这种做法的前提就是必须把约束给设置完整，不然系统就没法自动计算高度。"];
        [_dataSource addObject:@"但是大部分日常开发都是基于iPhone，然后才是iPad，iWatch，所以这个作为默认勾选在iPhone上是很多新手踩的大坑，如果没注意又不知道意思，勾选之后在不同屏幕上看到的边缘就会有留边或者被裁掉的问题。"];

    }
    return _dataSource;
}

//MARK: -UITableView DataSource & Delegate
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return self.dataSource.count;
}

static NSString *cellIdentify = @"CellID";
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    JFDynamicCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentify];
    if (!cell) {
        cell = [[JFDynamicCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentify];
    }
    [cell loadCellData:self.dataSource[indexPath.row]];
    return cell;
}

@end
